]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
gnome-shell-jhbuild: Adjust GI_TYPELIB_PATH for NM inclusion
authorDan Winship <danw@gnome.org>
Wed, 16 Mar 2011 13:40:25 +0000 (09:40 -0400)
committerDan Winship <danw@gnome.org>
Wed, 16 Mar 2011 15:04:33 +0000 (11:04 -0400)
When jhbuilding, we use a jhbuilt gobject-introspection, so the
default typelib path is the jhbuild prefix, not /usr. So if we are
using NetworkManager from packages, we need to adjust GI_TYPELIB_PATH
to include it.

https://bugzilla.gnome.org/show_bug.cgi?id=621707

configure.ac
src/Makefile.am
src/gnome-shell-jhbuild.in

index 3ecdfedc16c8a3d5179de40aa6271de6b8270a6c..0d5581d740f2774c938a2580e19d5bfbcfb0d3b7 100644 (file)
@@ -98,6 +98,14 @@ AC_DEFINE_UNQUOTED([GJS_VERSION], ["$GJS_VERSION"], [The version of GJS we're li
 AC_SUBST([GJS_VERSION], ["$GJS_VERSION"])
 
 GOBJECT_INTROSPECTION_CHECK([$GOBJECT_INTROSPECTION_MIN_VERSION])
+JHBUILD_TYPELIBDIR="$INTROSPECTION_TYPELIBDIR"
+# NM is the only typelib we use that we don't jhbuild
+PKG_CHECK_EXISTS([libnm-glib >= 0.8.995],
+        [NM_TYPELIBDIR=`$PKG_CONFIG --variable=libdir libnm-glib`/girepository-1.0
+        if test "$INTROSPECTION_TYPELIBDIR" != "$NM_TYPELIBDIR"; then
+            JHBUILD_TYPELIBDIR="$JHBUILD_TYPELIBDIR:$NM_TYPELIBDIR"
+        fi])
+AC_SUBST(JHBUILD_TYPELIBDIR)
 
 saved_CFLAGS=$CFLAGS
 saved_LIBS=$LIBS
index e878f20bf9f0f3826c361ad112084e35195d5f5e..7fcd3e8d09f1475b802826107b5b854bbf7504b3 100644 (file)
@@ -38,6 +38,7 @@ generated_script_substitutions = \
            -e "s|@datadir[@]|$(datadir)|" \
            -e "s|@libexecdir[@]|$(libexecdir)|" \
            -e "s|@libdir[@]|$(libdir)|" \
+           -e "s|@JHBUILD_TYPELIBDIR[@]|$(JHBUILD_TYPELIBDIR)|" \
            -e "s|@pkgdatadir[@]|$(pkgdatadir)|" \
            -e "s|@PYTHON[@]|$(PYTHON)|" \
            -e "s|@VERSION[@]|$(VERSION)|" \
index 1cc4ef4d3c4b09a20c070354ad955366de41252c..924e9b386a585d512c5519f5df512bcfec4312ab 100755 (executable)
@@ -197,12 +197,16 @@ def start_shell(perf_output=None):
     if os.path.exists(os.path.join(self_dir, 'gnome-shell-jhbuild.in')):
         running_from_source_tree = True
         top_dir = os.path.dirname(self_dir)
-        typelib_dir = os.path.join(top_dir, "src")
+        typelib_dir = '@JHBUILD_TYPELIBDIR@:' + os.path.join(top_dir, "src")
         js_dir = os.path.join(top_dir, "js")
         data_dir = os.path.join(top_dir, "data")
     else:
         running_from_source_tree = False
         js_dir = os.path.join('@pkgdatadir@', 'js')
+        typelib_dir = '@JHBUILD_TYPELIBDIR@'
+
+    if os.environ.has_key('GI_TYPELIB_PATH'):
+        typelib_dir = typelib_dir + ":" + os.environ.get('GI_TYPELIB_PATH')
 
     # Set up environment
     env = dict(os.environ)
@@ -215,14 +219,12 @@ def start_shell(perf_output=None):
     # run".  See bug #642084
     env.update({'GNOME_SHELL_JS'      : js_dir,
                 'PATH'                : '@bindir@:' + os.environ.get('PATH', ''),
+                'GI_TYPELIB_PATH'     : typelib_dir,
                 'XDG_CONFIG_DIRS'     : '@sysconfdir@/xdg:' + (os.environ.get('XDG_CONFIG_DIRS') or '/etc/xdg'),
                 'XDG_DATA_DIRS'       : '@datadir@:' + (os.environ.get('XDG_DATA_DIRS') or '/usr/local/share:/usr/share')})
     if running_from_source_tree:
-        if os.environ.has_key('GI_TYPELIB_PATH'):
-            typelib_dir = typelib_dir + ":" + os.environ.get('GI_TYPELIB_PATH')
         env.update({'GNOME_SHELL_BINDIR'   : self_dir,
                     'GNOME_SHELL_DATADIR'  : data_dir,
-                    'GI_TYPELIB_PATH'      : typelib_dir,
                     'GSETTINGS_SCHEMA_DIR' : data_dir })
     else:
         # This is just broken to set in the installed case; see bug #642084